#pragma once

#ifndef HEADER_FILE_READER
#define HEADER_FILE_READER

/*! \file SourceFileReader.h
	\brief Header file for SourceFileReader class.
	
	Details.
*/

#include "AbstractSourceFileReader.h"

namespace analyzer {

	//! This class is responsible for read including files.
	class SourceFileReader : public AbstractSourceFileReader
	{
	public:
		/*! \fn SourceFileReader(void)
			\brief Constructor of class SourceFileReader
		*/
		SourceFileReader(void);
		
		/*! \fn ~SourceFileReader(void)
			\brief Destructor of class SourceFileReader.
		*/		
		~SourceFileReader(void);

		/*! \fn virtual std::vector<std::string> readFileImports(const FileInfo& fileInfo)
			\brief Reads all includes (names included files) into file specyfic by fileInfo.
			\param fileInfo Sets the object FileInfo which define of file on file system.
			\return Vector of strings containing the names of included files
		*/
		virtual std::vector<std::string> readFileImports(const FileInfo& fileInfo);
	};

}

#endif // HEADER_FILE_READER

